package com.dj.merchant.controller;

import com.dj.common.response.ApiResponse;
import com.dj.merchant.dto.StoreInfoCreateData;
import com.dj.merchant.model.StoreInfo;
import com.dj.merchant.service.impl.StoreInfoServiceImpl;
import com.dj.merchant.endpoint.StoreInfoBaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @Author : Jimmy
 * @Date : 2020/12/11 15:28
 * @Desc : 店铺创建/更新/查询/
 **/
@RestController
@RequestMapping("/bas/merchant/v1.0")
public class StoreInfoController implements StoreInfoBaseService {


    @Autowired
    private StoreInfoServiceImpl storeInfoService;

    /**
     * 创建店铺
     * @param storeInfo
     * @return
     */
    @Override
    @PostMapping("/store/create")
    public ApiResponse<Long> createStore(@RequestBody StoreInfoCreateData storeInfo) {

        Long resultId = storeInfoService.createStore(storeInfo);

        return ApiResponse.success(resultId);
    }

    /**
     * 查询店铺
     * @param
     * @return
     */


    public ApiResponse<List<StoreInfo>> selectStoreList(StoreInfoCreateData storeInfo) {

        List<StoreInfo> storeInfos = storeInfoService.selectStore(storeInfo);

        return ApiResponse.success(storeInfos);
    }

    @GetMapping("/store/list")
    public ApiResponse<List<StoreInfo>> queryStoreList(StoreInfoCreateData storeInfo) {

        List<StoreInfo> storeInfos = storeInfoService.selectStore(storeInfo);

        return ApiResponse.success(storeInfos);
    }


//    @Override
    @PostMapping("/store/update")
    public ApiResponse<Integer> updateStore(@RequestBody StoreInfoCreateData storeInfo) {

        Integer integer = storeInfoService.updateStore(storeInfo);

        return ApiResponse.success(integer);
    }

    //查询店铺
    @GetMapping("/store/get")
    public ApiResponse<StoreInfo> getStore(@RequestParam("storeId") Long storeId){
        StoreInfo storeInfo = storeInfoService.getStoreInfo(storeId);
        return ApiResponse.success(storeInfo);
    }

    //审核
    @Override
    public ApiResponse<Integer> updateApprive(String id, String status) {


        return ApiResponse.success(storeInfoService.updateA(Long.parseLong(id), Short.parseShort(status)));
    }

    //开店闭店
    @Override
    public ApiResponse<Integer> updateActive(String id, String status) {

        return ApiResponse.success(storeInfoService.openA(Long.parseLong(id), Short.parseShort(status)));
    }


}
